package cn.eud.hunau.service;

import java.util.List;

import cn.eud.hunau.pojo.Movie;

public interface MovieService {
    // 查询所有电影
    List<Movie> selectAll();
    // 根据电影id查询电影
    Movie selectById(Integer id);
    // 收藏电影
    boolean likeMovie(Long userId, Long movieId);
    // 取消收藏
    boolean unlikeMovie(Long userId, Long movieId);
    // 查询用户收藏的电影
    List<Movie> getLikedMovies(Long userId);
    // 判断用户是否收藏某电影
    boolean isMovieLiked(Long userId, Long movieId);
    // 评分电影
    boolean rateMovie(Long userId, Long movieId, Integer score);
    // 查询用户对某电影的评分
    Integer getUserScore(Long userId, Long movieId);
    // 查询某电影的所有评分
    java.util.List<cn.eud.hunau.pojo.UserRateMovie> getMovieScores(Long movieId);
    // 评论电影
    boolean commentMovie(Long userId, Long movieId, String comment);
    // 查询某电影的所有评论
    java.util.List<cn.eud.hunau.pojo.UserCommentMovie> getMovieComments(Long movieId);
    // 查询用户对某电影的评论
    java.util.List<cn.eud.hunau.pojo.UserCommentMovie> getUserComments(Long userId, Long movieId);
    // 修改评论
    boolean updateComment(Long commentId, Long userId, String comment);
    // 删除评论
    boolean deleteComment(Long commentId, Long userId);
    // 查询热门电影排行
    java.util.List<cn.eud.hunau.pojo.Movie> getHotMovies(int limit);
    // 多条件综合分类查询电影
    java.util.List<Movie> getMoviesByConditions(Long typeId, Long regionId, Long languageId);
    // 查询所有类型
    java.util.List<cn.eud.hunau.pojo.Type> getAllTypes();
    // 查询所有地区
    java.util.List<cn.eud.hunau.pojo.Region> getAllRegions();
    // 查询所有语言
    java.util.List<cn.eud.hunau.pojo.Language> getAllLanguages();
}